package WrittenExamination;

import java.util.Stack;

public class day7_2 {
    /**
     * 描述
     * 给定一个字符串A和其长度n，请返回一个bool值代表它是否为一个合法的括号串（只能由括号组成）。
     *
     * 测试样例：
     * "(()())",6
     * 返回：true
     * 测试样例：
     * "()a()()",7
     * 返回：false
     * 测试样例：
     * "()(()()",7
     * 返回：false
     */
    public static void main(String[] args) {

    }
    public boolean chkParenthesis(String A, int n) {
// write code here
        if (n % 2 != 0) {
            return false;
        }
        Stack<Character> stack = new Stack<>();
        for (char c : A.toCharArray()) {
            if (c == '(') {
                stack.push(c);
            } else if (c == ')') {
                if (stack.isEmpty()) {
                    return false;
                } else if (stack.peek() == '(') {
                    stack.pop();
                }
            } else {
                return false;
            }
        }
        return stack.isEmpty();
    }
}
